From 79961b311e61cb274d817d15e073ad511918a36e Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 10 Jul 2008 11:26:42 +0100 Subject: [PATCH] intel: Stricter check for cpuid feature mask MSR availability. Signed-off-by: Liping Ke Signed-off-by: Jun Nakajima Signed-off-by: Keir Fraser --- xen/arch/x86/cpu/intel.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c index 1025097d21..f8fdb8af28 100644 --- a/xen/arch/x86/cpu/intel.c +++ b/xen/arch/x86/cpu/intel.c @@ -37,13 +37,14 @@ struct movsl_mask movsl_mask __read_mostly; static void __devinit set_cpuidmask(void) { - unsigned int eax, ebx, ecx, edx; + unsigned int eax, ebx, ecx, edx, model; if (!(opt_cpuid_mask_ecx | opt_cpuid_mask_edx)) return; cpuid(0x00000001, &eax, &ebx, &ecx, &edx); - if (eax < 0x00010674) { + model = ((eax & 0xf0000) >> 12) | ((eax & 0xf0) >> 4); + if (!((model == 0x1d) || ((model == 0x17) && ((eax & 0xf) >= 4)))) { printk(XENLOG_ERR "Cannot set CPU feature mask on CPU#%d\n", smp_processor_id()); return; -- 2.30.2